package com.example.web;

import java.io.File;
import java.net.URL;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

/**
 * 路径获取类
 * */
public class WebPath {
	/**
	 * 获取项目根目录的绝对路径
	 * 
	 * @return 如:F:\TongJianpeng\J2EEUtil
	 * */
	public static String getAbsolutePathWithProject() {
		return System.getProperty("user.dir");
	}

	/**
	 * 获取项目所在盘符
	 * */
	public static String getDriverPathWithProject() {
		return new File("/").getAbsolutePath();
	}

	/**
	 * 获取项目根目录的绝对路径
	 * 
	 * @return 项目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
	 * */
	public static String getAbsolutePathWithWebProject(
			HttpServletRequest request) {
		return request.getSession().getServletContext().getRealPath("/");
	}

	/**
	 * 获取项目根目录下的指定目录的绝对路径
	 * 
	 * @param 项目根目下的指定目录
	 *            .例如:/login/
	 * @return 项目根目下的指定目录.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
	 * */
	public static String getAbsolutePathWithWebProject(
			HttpServletRequest request, String path) {
		return request.getSession().getServletContext().getRealPath(path);
	}

	/**
	 * 获取项目根目录的绝对路径
	 * 
	 * @return 项目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
	 * */
	public static String getAbsolutePathWithWebProject(ServletContext context) {
		return context.getRealPath("/");
	}

	/**
	 * 获取项目根目录下的指定目录的绝对路径
	 * 
	 * @param 项目根目下的指定目录
	 *            .例如:/login/
	 * @return 项目根目下的指定目录.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
	 * */
	public static String getAbsolutePathWithWebProject(ServletContext context,
			String path) {
		return context.getRealPath(path);
	}

	/**
	 * 获取项目classpath目录的绝对路径
	 * 
	 * @return classes目录的绝对路径<br/>
	 *         file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/
	 * */
	public static URL getAbsolutePathWithClass() {
		return WebPath.class.getResource("/");
	}

	/**
	 * 获取项目classPath目录下的指定目录的绝对路径
	 * 
	 * @param path
	 *            classes目录下的指定目录.比如:/com/
	 * @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/
	 * */
	public static URL getAbsolutePathWithClass(String path) {
		return WebPath.class.getResource(path);
	}

	/**
	 * 获取指定类文件的所在目录的绝对路径
	 * 
	 * @param clazz
	 *            类
	 * @return 类文件的绝对路径.例如:<br/> 包com.Aries.Util.Web下的Main.java类.<br/>
	 *         路径为:file:/
	 *         F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/
	 * */
	public static URL getAbsolutePathWithClass(Class clazz) {
		return clazz.getResource("");
	}
}
